home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Source Code / Visual Basic Source Code.iso / vbsource / ape-ad1a / guiddefs.bas < prev    next >
BASIC Source File  |  1999-08-07  |  14KB  |  458 lines

  1. Attribute VB_Name = "GUIDDEFS"
  2. ' Game controls objects
  3. Public GUID_XAxis As Win32.GUID
  4. Public GUID_YAxis As Win32.GUID
  5. Public GUID_ZAxis As Win32.GUID
  6. Public GUID_RxAxis As Win32.GUID
  7. Public GUID_RyAxis As Win32.GUID
  8. Public GUID_RzAxis As Win32.GUID
  9. Public GUID_Slider As Win32.GUID
  10. Public GUID_Button As Win32.GUID
  11. Public GUID_Key As Win32.GUID
  12. Public GUID_POV As Win32.GUID
  13. Public GUID_Unknown As Win32.GUID
  14.  
  15. ' Input devices
  16. Public GUID_SysMouse As Win32.GUID
  17. Public GUID_SysKeyboard As Win32.GUID
  18. Public GUID_Joystick As Win32.GUID
  19.  
  20. ' Data formats
  21. Public c_dfDIMouse As DIDATAFORMAT
  22. Public c_dfDIKeyboard As DIDATAFORMAT
  23. Public c_dfDIJoystick As DIDATAFORMAT
  24. Public c_dfDIJoystick2 As DIDATAFORMAT
  25.  
  26. ' Private
  27. Private odfMouse(0 To 6) As DIOBJECTDATAFORMAT
  28. Private odfKeyBoard(0 To 255) As DIOBJECTDATAFORMAT
  29. Private odfJoystick(0 To 43) As DIOBJECTDATAFORMAT
  30. Private odfJoystick2(0 To 163) As DIOBJECTDATAFORMAT
  31.  
  32. ' These are needed by CDXVBInput... Look into these structures for info!
  33. Public MouseState As DIMOUSESTATE
  34. Public JoystickState As DIJOYSTATE
  35. Public Keys(0 To 255) As Byte
  36.  
  37. ' Fills a GUID
  38. Private Sub DefineGUID(GUID As Win32.GUID, ByVal Data1 As Long, ByVal Data2 As Integer, ByVal Data3 As Integer, ByVal Data40 As Byte, ByVal Data41 As Byte, ByVal Data42 As Byte, ByVal Data43 As Byte, ByVal Data44 As Byte, ByVal Data45 As Byte, ByVal Data46, ByVal Data47 As Byte)
  39.     With GUID
  40.         .Data1 = Data1
  41.         .Data2 = Data2
  42.         .Data3 = Data3
  43.         .Data4(0) = Data40
  44.         .Data4(1) = Data41
  45.         .Data4(2) = Data42
  46.         .Data4(3) = Data43
  47.         .Data4(4) = Data44
  48.         .Data4(5) = Data45
  49.         .Data4(6) = Data46
  50.         .Data4(7) = Data47
  51.     End With
  52. End Sub
  53.  
  54. Public Sub GUID_Initialize()
  55.     Dim i As Long
  56.     ' Game controls
  57.     DefineGUID GUID_XAxis, &HA36D02E0, &HC9F3, &H11CF, &HBF, &HC7, &H44, &H45, &H53, &H54, 0, 0
  58.     DefineGUID GUID_YAxis, &HA36D02E1, &HC9F3, &H11CF, &HBF, &HC7, &H44, &H45, &H53, &H54, 0, 0
  59.     DefineGUID GUID_ZAxis, &HA36D02E2, &HC9F3, &H11CF, &HBF, &HC7, &H44, &H45, &H53, &H54, 0, 0
  60.     DefineGUID GUID_RxAxis, &HA36D02F4, &HC9F3, &H11CF, &HBF, &HC7, &H44, &H45, &H53, &H54, 0, 0
  61.     DefineGUID GUID_RyAxis, &HA36D02F5, &HC9F3, &H11CF, &HBF, &HC7, &H44, &H45, &H53, &H54, 0, 0
  62.     DefineGUID GUID_RzAxis, &HA36D02E3, &HC9F3, &H11CF, &HBF, &HC7, &H44, &H45, &H53, &H54, 0, 0
  63.     DefineGUID GUID_Slider, &HA36D02E4, &HC9F3, &H11CF, &HBF, &HC7, &H44, &H45, &H53, &H54, 0, 0
  64.     DefineGUID GUID_Button, &HA36D02F0, &HC9F3, &H11CF, &HBF, &HC7, &H44, &H45, &H53, &H54, 0, 0
  65.     DefineGUID GUID_Key, &H55728220, &HD33C, &H11CF, &HBF, &HC7, &H44, &H45, &H53, &H54, 0, 0
  66.     DefineGUID GUID_POV, &HA36D02F2, &HC9F3, &H11CF, &HBF, &HC7, &H44, &H45, &H53, &H54, 0, 0
  67.     DefineGUID GUID_Unknown, &HA36D02F3, &HC9F3, &H11CF, &HBF, &HC7, &H44, &H45, &H53, &H54, 0, 0
  68.     
  69.     ' Input devices
  70.     DefineGUID GUID_SysMouse, &H6F1D2B60, &HD5A0, &H11CF, &HBF, &HC7, &H44, &H45, &H53, &H54, 0, 0
  71.     DefineGUID GUID_SysKeyboard, &H6F1D2B61, &HD5A0, &H11CF, &HBF, &HC7, &H44, &H45, &H53, &H54, 0, 0
  72.     DefineGUID GUID_Joystick, &H6F1D2B70, &HD5A0, &H11CF, &HBF, &HC7, &H44, &H45, &H53, &H54, 0, 0
  73.     
  74.     ' Mouse objects array
  75.     With odfMouse(0)
  76.         .dwOfs = 0
  77.         .dwType = &HFFFF00 + DIDFT_AXIS
  78.         .dwflags = 0
  79.         .pGUID = VarPtr(GUID_XAxis)
  80.     End With
  81.     With odfMouse(1)
  82.         .dwOfs = 4
  83.         .dwType = &HFFFF00 + DIDFT_AXIS
  84.         .dwflags = 0
  85.         .pGUID = VarPtr(GUID_YAxis)
  86.     End With
  87.     With odfMouse(2)
  88.         .dwOfs = 8
  89.         .dwType = &H80FFFF00 + DIDFT_AXIS
  90.         .dwflags = 0
  91.         .pGUID = VarPtr(GUID_ZAxis)
  92.     End With
  93.     For i = 0 To 3
  94.         With odfMouse(3 + i)
  95.             .dwOfs = 12 + i
  96.             .dwType = &HFFFF00 + DIDFT_BUTTON
  97.             If i = 2 Or i = 3 Then .dwType = &H80000000 Or .dwType
  98.             .dwflags = 0
  99.             .pGUID = VarPtr(GUID_Button)
  100.         End With
  101.     Next
  102.     
  103.     ' Mouse data format
  104.     With c_dfDIMouse
  105.         .dwSize = &H18
  106.         .dwObjSize = &H10
  107.         .dwflags = 2
  108.         .dwDataSize = &H10
  109.         .dwNumObjs = 7
  110.         .rgodf = VarPtr(odfMouse(0))
  111.     End With
  112.     
  113.     ' Keyboard objects array
  114.     For i = 0 To 255
  115.         With odfKeyBoard(i)
  116.             .dwOfs = i
  117.             .dwType = &H80000000 + DIDFT_BUTTON + i * 256&
  118.             .dwflags = &H0
  119.             .pGUID = VarPtr(GUID_Key)
  120.         End With
  121.     Next
  122.     
  123.     ' Keyboard data format
  124.     With c_dfDIKeyboard
  125.         .dwSize = &H18
  126.         .dwObjSize = &H10
  127.         .dwflags = 2
  128.         .dwDataSize = &H100
  129.         .dwNumObjs = &H100
  130.         .rgodf = VarPtr(odfKeyBoard(0))
  131.     End With
  132.     
  133.     ' Joystick objects array
  134.     With odfJoystick(0)
  135.         .dwOfs = 0
  136.         .dwType = &H80FFFF00 + DIDFT_AXIS
  137.         .dwflags = 1
  138.         .pGUID = VarPtr(GUID_XAxis)
  139.     End With
  140.     With odfJoystick(1)
  141.         .dwOfs = 4
  142.         .dwType = &H80FFFF00 + DIDFT_AXIS
  143.         .dwflags = 1
  144.         .pGUID = VarPtr(GUID_YAxis)
  145.     End With
  146.     With odfJoystick(2)
  147.         .dwOfs = 8
  148.         .dwType = &H80FFFF00 + DIDFT_AXIS
  149.         .dwflags = 1
  150.         .pGUID = VarPtr(GUID_ZAxis)
  151.     End With
  152.     With odfJoystick(3)
  153.         .dwOfs = &HC
  154.         .dwType = &H80FFFF00 + DIDFT_AXIS
  155.         .dwflags = 1
  156.         .pGUID = VarPtr(GUID_RxAxis)
  157.     End With
  158.     With odfJoystick(4)
  159.         .dwOfs = &H10
  160.         .dwType = &H80FFFF00 + DIDFT_AXIS
  161.         .dwflags = 1
  162.         .pGUID = VarPtr(GUID_RyAxis)
  163.     End With
  164.     With odfJoystick(5)
  165.         .dwOfs = &H14
  166.         .dwType = &H80FFFF00 + DIDFT_AXIS
  167.         .dwflags = 1
  168.         .pGUID = VarPtr(GUID_RzAxis)
  169.     End With
  170.     With odfJoystick(6)
  171.         .dwOfs = &H18
  172.         .dwType = &H80FFFF00 + DIDFT_AXIS
  173.         .dwflags = 1
  174.         .pGUID = VarPtr(GUID_Slider)
  175.     End With
  176.     With odfJoystick(7)
  177.         .dwOfs = &H1C
  178.         .dwType = &H80FFFF00 + DIDFT_AXIS
  179.         .dwflags = 1
  180.         .pGUID = VarPtr(GUID_Slider)
  181.     End With
  182.     With odfJoystick(8)
  183.         .dwOfs = &H20
  184.         .dwType = &H80FFFF00 + DIDFT_POV
  185.         .dwflags = 0
  186.         .pGUID = VarPtr(GUID_POV)
  187.     End With
  188.     With odfJoystick(9)
  189.         .dwOfs = &H24
  190.         .dwType = &H80FFFF00 + DIDFT_POV
  191.         .dwflags = 0
  192.         .pGUID = VarPtr(GUID_POV)
  193.     End With
  194.     With odfJoystick(10)
  195.         .dwOfs = &H28
  196.         .dwType = &H80FFFF00 + DIDFT_POV
  197.         .dwflags = 0
  198.         .pGUID = VarPtr(GUID_POV)
  199.     End With
  200.     With odfJoystick(11)
  201.         .dwOfs = &H2C
  202.         .dwType = &H80FFFF00 + DIDFT_POV
  203.         .dwflags = 0
  204.         .pGUID = VarPtr(GUID_POV)
  205.     End With
  206.     For i = 0 To 31
  207.     With odfJoystick(12 + i)
  208.         .dwOfs = &H30 + i
  209.         .dwType = &H80FFFF00 + DIDFT_BUTTON
  210.         .dwflags = 0
  211.         .pGUID = VarPtr(GUID_Button)
  212.     End With
  213.     Next
  214.     ' Joystick data format
  215.     With c_dfDIJoystick
  216.         .dwSize = &H18
  217.         .dwObjSize = &H10
  218.         .dwflags = 1
  219.         .dwDataSize = &H50
  220.         .dwNumObjs = &H2C
  221.         .rgodf = VarPtr(odfJoystick(0))
  222.     End With
  223.     
  224.     ' Joystick2
  225.     With odfJoystick2(0)
  226.         .dwOfs = 0
  227.         .dwType = &H80FFFF00 + DIDFT_AXIS
  228.         .dwflags = 1
  229.         .pGUID = VarPtr(GUID_XAxis)
  230.     End With
  231.     With odfJoystick2(1)
  232.         .dwOfs = 4
  233.         .dwType = &H80FFFF00 + DIDFT_AXIS
  234.         .dwflags = 1
  235.         .pGUID = VarPtr(GUID_YAxis)
  236.     End With
  237.     With odfJoystick2(2)
  238.         .dwOfs = 8
  239.         .dwType = &H80FFFF00 + DIDFT_AXIS
  240.         .dwflags = 1
  241.         .pGUID = VarPtr(GUID_YAxis)
  242.     End With
  243.     With odfJoystick2(3)
  244.         .dwOfs = 12
  245.         .dwType = &H80FFFF00 + DIDFT_AXIS
  246.         .dwflags = 1
  247.         .pGUID = VarPtr(GUID_YAxis)
  248.     End With
  249.     With odfJoystick2(4)
  250.         .dwOfs = 16
  251.         .dwType = &H80FFFF00 + DIDFT_AXIS
  252.         .dwflags = 1
  253.         .pGUID = VarPtr(GUID_YAxis)
  254.     End With
  255.     With odfJoystick2(5)
  256.         .dwOfs = 20
  257.         .dwType = &H80FFFF00 + DIDFT_AXIS
  258.         .dwflags = 1
  259.         .pGUID = VarPtr(GUID_YAxis)
  260.     End With
  261.